package com.jeesite.modules.task.action.dao;

import com.jeesite.common.dao.CrudDao;
import com.jeesite.common.mybatis.annotation.MyBatisDao;
import com.jeesite.modules.sys.entity.User;
import com.jeesite.modules.task.action.entity.DcSupTaskAction;
import com.jeesite.modules.task.action.entity.DcSupTaskActionDto;
import com.jeesite.modules.task.action.entity.DcSupTaskInfoAction;
import com.jeesite.modules.task.action.entity.DcSupTaskScheduled;
import com.jeesite.modules.task.arrange.entity.DcSupTaskInfoArrange;
import com.jeesite.modules.task.audit.entity.DcSupTaskAudit;
import com.jeesite.modules.task.deploy.entity.DcSupTaskInfo;
import com.jeesite.modules.task.deploy.entity.OfficeUser;
import com.jeesite.modules.task.feedback.entity.DcSupTaskFeedback;
import com.jeesite.modules.task.receive.entity.TaskReceiveDto;
import com.jeesite.modules.task.status.entity.DcSupTaskStatus;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 任务部署分发表DAO接口
 * @author zrr
 * @version 2022-03-03
 */
@MyBatisDao
public interface DcSupTaskActionDao extends CrudDao<DcSupTaskAction> {

    List<DcSupTaskInfoAction> findNoCompleteListData(DcSupTaskInfoAction dcSupTaskAction);

    List<DcSupTaskInfoAction> findCompleteListData(DcSupTaskInfoAction dcSupTaskAction);

    List<DcSupTaskActionDto> findDcSupTaskActionDtoList(DcSupTaskActionDto dcSupTaskActionDto);

    DcSupTaskActionDto findByIdDcSupTaskActionDto(DcSupTaskActionDto dcSupTaskActionDto);

    void updateData(DcSupTaskAction dcSupTaskAction);

    List<DcSupTaskAction> findscheduledActionList();

    List<DcSupTaskScheduled> findscheduledFeedbackList(@Param("actionId")String actionId);

    void updateProgress(DcSupTaskAction updateAction);

    void updateProgress2(@Param("ids") List<String> ids,@Param("remarks2") String remarsk2);

    List<DcSupTaskInfo> actionSecretaryFeedbackList(DcSupTaskInfo dcSupTaskInfo);
    List<DcSupTaskInfo> actionSecretaryFeedbackListQuery(DcSupTaskInfo dcSupTaskInfo);

    String finTaskLeaderOrgName(String id);

    void updateTask(DcSupTaskInfo dt);

    void updateFeedBack(DcSupTaskFeedback dt);

    List<OfficeUser> getUserByOrg(@Param("roleCode") String roleCode, @Param("org") String org);

    DcSupTaskInfo getImageOne(String id);

    DcSupTaskInfoArrange getImageTwo(String id);

    DcSupTaskAudit getImageThree(String id);

    Integer getFiveAndNightCount(String id);

    List<DcSupTaskAction> getListReceiveTime(DcSupTaskAction dcSupTaskAction);

    List<DcSupTaskAction> listDataDelete(DcSupTaskAction dcSupTaskAction);

    void deleteAction(DcSupTaskAction dcSupTaskAction);

    void updateTaskStatus(DcSupTaskAction action);

    void updateDecomposeCreateBy(String decomposeTaskId, String transferOrgCode);

    List<Map> findLeaderOrg(String taskNo);

    List<DcSupTaskAction> getAction(DcSupTaskAction dcSupTaskAction);

    List<DcSupTaskInfo> getInfoNotFour();

    List<DcSupTaskAction> getActionNotFour(String id);

    String getFeedbackStatus(String id);

    void setActionStatus(DcSupTaskAction dcSupTaskAction);

    void setInfoStatus(DcSupTaskInfo dcSupTaskInfo);

    String getFeedbackIdsByActionId(String id);

    String getAuditIdsByFeedbackIds(String ids);


    void deleteAuditTable(String ids);

    List<DcSupTaskAction> getActionListByActionid(String id);

    void deleteInfo(String id);

    DcSupTaskInfo getInfoById(@Param("id") String id);

    void updateInfo(DcSupTaskInfo updateInfo);

    Integer getRefineNum(String id);

    Integer getActionNum(String id);

    List<DcSupTaskFeedback> getActionList();

    List<String> getActionListNotFour();

    DcSupTaskFeedback getFeedback(String actionId);

    TaskReceiveDto getActionById(String id);
}